﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WindowsFormsApplication3.Conexion;
using System.Text.RegularExpressions;

namespace WindowsFormsApplication3
{
    public partial class Inventario : Form
    {
        GestionManager ges = new GestionManager();
        public Inventario()
        {            
            InitializeComponent();
        }

        private void btagregar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtcantidad.Text) || txtcod.Text == "Seleccione")
            {
                MessageBox.Show("Debe seleccionar un producto e ingresar una cantidad", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
            else
            {

                txtcantidad.Text = Regex.Replace(txtcantidad.Text.Trim(), @"\s+", " ");
                txtdetalles.Text = Regex.Replace(txtdetalles.Text.Trim(), @"\s+", " ");
                int cantidad = Convert.ToInt32(txtcantidad.Text);
                int actual = Convert.ToInt32(txtactual.Text);
                int stock = actual + cantidad;
                string msg = ges.actualizarStock(Convert.ToInt64(ges.codProd(txtcod.Text)), stock);
                MessageBox.Show(msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (msg == "Stock Actualizado")
                {
                     string insert = "insert into inventario(encargado, fecha) values('" + login.variable + "', '" + DateTime.Today.ToShortDateString() + "')";
                     ges.BDInsert(insert);

                     int idinv = ges.RecuperarIDInventario();
                     string insert2 = "insert into detalle_inventario(iddetalleInv, cantActual, cantNueva, detalle, codproducto) values("+ idinv +", '" + actual + "', '" + stock + "', '" + txtdetalles.Text + "', '" + Convert.ToInt64(ges.codProd(txtcod.Text)) + "')";
                
                     ges.BDInsert(insert2);
                    LimpiarCampos();
                }
                grillaInventario.DataSource = ges.getProd();
                grillaInventario.DataMember = "productos";
            } 
        }

        private void LimpiarCampos()
        {
            txtcod.SelectedIndex = 0;
            txtcantidad.Text = "";
            txtactual.Text = "";
            txtdetalles.Text = "";
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }
        public void llenarCBciudad(ComboBox combo)
        {
            DataSet ds = ges.buscarCBproductos();
            if (ds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables["cbproductos"].Rows.Count; i++)
                {
                    combo.Items.Add(ds.Tables["cbproductos"].Rows[i][0].ToString());
                }
            }
        }

        private void Inventario_Load(object sender, EventArgs e)
        {
            txtactual.Text = "";
            txtcod.SelectedIndex = 0;
            llenarCBciudad(txtcod);
            txtfecha.Text = DateTime.Today.ToShortDateString();
            grillaInventario.DataSource = ges.getProd();
            grillaInventario.DataMember = "productos";
        }

        private void txtcod_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtactual.Text = ges.stock(Convert.ToInt64(ges.codProd(txtcod.Text))).ToString();
        }

        private void grillaInventario_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
